package com.rongshe.system.service;


import com.rongshe.system.domain.MessageDTO;
import com.rongshe.system.domain.MessageQueryParam;
import com.rongshe.system.domain.vo.MessageVO;

import java.util.List;

/**
 * 消息服务接口
 */
public interface ISysMessageService {

    /**
     * 发送消息
     */
    void sendMessage(MessageDTO messageDTO);

    /**
     * 获取未读消息数量
     */
    int getUnreadCount(Long userId);

    /**
     * 获取消息列表
     */
    List<MessageVO> getMessageList(Long userId, MessageQueryParam param);

    /**
     * 获取消息详情
     */
    MessageVO getMessageById(Long messageId, Long userId);

    /**
     * 标记消息为已读
     */
    void markAsRead(Long userId, Long[] messageIds);

    /**
     * 批量标记消息为已读
     */
    void markAsReadBatch(Long userId);

    /**
     * 删除消息（逻辑删除）
     */
    void deleteMessage(Long messageId);
}
